/**
 * This file is part of 1genia trampoline
 * Copyright (C) 2007 1genia (contact@1genia.com)
 *
 * This library is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; version 3 of the License. 
 *
 * This library is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details. 
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; see the file COPYING.TXT.  If not,
 * write to the Free Software Foundation, Inc., 51 Franklin Street,
 * Fifth Floor, Boston, MA 02110-1301, USA. 
 **/
package com.genia.toolbox.uml_generator.manager.impl;

import com.genia.toolbox.basics.manager.CollectionManager;
import com.genia.toolbox.basics.manager.ExceptionManager;
import com.genia.toolbox.uml_generator.manager.AssociationManager;
import com.genia.toolbox.uml_generator.manager.AttributeManager;
import com.genia.toolbox.uml_generator.manager.DelegateManager;
import com.genia.toolbox.uml_generator.manager.ModelDecorator;
import com.genia.toolbox.uml_generator.manager.ModelInspector;
import com.genia.toolbox.uml_generator.manager.NameManager;
import com.genia.toolbox.uml_generator.manager.PrinterManager;

/**
 * abstract object containing usual managers.
 */
public abstract class AbstractManager
{

  /**
   * the {@link AssociationManager} to use.
   */
  private AssociationManager associationManager;

  /**
   * the {@link AttributeManager} to use.
   */
  private AttributeManager attributeManager;

  /**
   * the {@link PrinterManager} to use.
   */
  private PrinterManager printerManager;

  /**
   * the {@link ModelDecorator} to use.
   */
  private ModelDecorator modelDecorator;

  /**
   * the {@link NameManager} to use.
   */
  private NameManager nameManager;

  /**
   * the {@link ModelInspector} to use.
   */
  private ModelInspector modelInspector;

  /**
   * the {@link CollectionManager} to use.
   */
  private CollectionManager collectionManager;

  /**
   * the {@link DelegateManager} to use.
   */
  private DelegateManager delegateManager;

  /**
   * the {@link ExceptionManager} to use.
   */
  private ExceptionManager exceptionManager;



  /**
   * getter for the associationManager property.
   * 
   * @return the associationManager
   */
  public AssociationManager getAssociationManager()
  {
    return associationManager;
  }



  /**
   * setter for the associationManager property.
   * 
   * @param associationManager
   *          the associationManager to set
   */
  public void setAssociationManager(AssociationManager associationManager)
  {
    this.associationManager = associationManager;
  }



  /**
   * getter for the attributeManager property.
   * 
   * @return the attributeManager
   */
  public AttributeManager getAttributeManager()
  {
    return attributeManager;
  }



  /**
   * setter for the attributeManager property.
   * 
   * @param attributeManager
   *          the attributeManager to set
   */
  public void setAttributeManager(AttributeManager attributeManager)
  {
    this.attributeManager = attributeManager;
  }



  /**
   * getter for the printerManager property.
   * 
   * @return the printerManager
   */
  public PrinterManager getPrinterManager()
  {
    return printerManager;
  }



  /**
   * setter for the printerManager property.
   * 
   * @param printerManager
   *          the printerManager to set
   */
  public void setPrinterManager(PrinterManager printerManager)
  {
    this.printerManager = printerManager;
  }



  /**
   * getter for the modelDecorator property.
   * 
   * @return the modelDecorator
   */
  public ModelDecorator getModelDecorator()
  {
    return modelDecorator;
  }



  /**
   * setter for the modelDecorator property.
   * 
   * @param modelDecorator
   *          the modelDecorator to set
   */
  public void setModelDecorator(ModelDecorator modelDecorator)
  {
    this.modelDecorator = modelDecorator;
  }



  /**
   * getter for the nameManager property.
   * 
   * @return the nameManager
   */
  public NameManager getNameManager()
  {
    return nameManager;
  }



  /**
   * setter for the nameManager property.
   * 
   * @param nameManager
   *          the nameManager to set
   */
  public void setNameManager(NameManager nameManager)
  {
    this.nameManager = nameManager;
  }



  /**
   * getter for the modelInspector property.
   * 
   * @return the modelInspector
   */
  public ModelInspector getModelInspector()
  {
    return modelInspector;
  }



  /**
   * setter for the modelInspector property.
   * 
   * @param modelInspector
   *          the modelInspector to set
   */
  public void setModelInspector(ModelInspector modelInspector)
  {
    this.modelInspector = modelInspector;
  }



  /**
   * getter for the collectionManager property.
   * 
   * @return the collectionManager
   */
  public CollectionManager getCollectionManager()
  {
    return collectionManager;
  }



  /**
   * setter for the collectionManager property.
   * 
   * @param collectionManager
   *          the collectionManager to set
   */
  public void setCollectionManager(CollectionManager collectionManager)
  {
    this.collectionManager = collectionManager;
  }



  /**
   * getter for the delegateManager property.
   * 
   * @return the delegateManager
   */
  public DelegateManager getDelegateManager()
  {
    return delegateManager;
  }



  /**
   * setter for the delegateManager property.
   * 
   * @param delegateManager
   *          the delegateManager to set
   */
  public void setDelegateManager(DelegateManager delegateManager)
  {
    this.delegateManager = delegateManager;
  }



  /**
   * getter for the exceptionManager property.
   * 
   * @return the exceptionManager
   */
  public ExceptionManager getExceptionManager()
  {
    return exceptionManager;
  }



  /**
   * setter for the exceptionManager property.
   * 
   * @param exceptionManager
   *          the exceptionManager to set
   */
  public void setExceptionManager(ExceptionManager exceptionManager)
  {
    this.exceptionManager = exceptionManager;
  }
}
